last mod: 13-Jan-08 sciss
This class allows you to add any javax.swing.JComponent or javax.swing.JPanel subclass to an JSCWindow or one of its containers. See also: JSCView, JavaObject
JSCPlugView.new( <(JSCView) parent>, <(Rect) bounds>, <(JavaObject) javaObject> )
The SwingOSC server is taken from javaObject. Any unknown message call is redirected to the server, similar to what JavaObject. Note: There is no getter methods implementation right now.
Example:
(
var win, progBar, tab, flow, lb1, lb2, check, rout;
win = JSCWindow( "Schoko", Rect.new( 128, 64, 400, 470 ));
flow = FlowLayout( win.view.bounds );
win.view.decorator = flow;
// we can create gadgets ...
progBar = JSCPlugView( win, Rect( 0, 0, 390, 24 ), JavaObject( 'javax.swing.JProgressBar' ));
// ... and containers
tab = JSCPlugContainerView( win, Rect( 0, 0, 400, 400 ), JavaObject( 'javax.swing.JTabbedPane' ));
// ... and gadgets inside containers
lb1 = JSCPlugView( tab, Rect( 10, 20, 360, 360 ), JavaObject( 'javax.swing.JLabel' ));
// we can talk to these through their java methods
lb1.setIcon( JavaObject( 'javax.swing.ImageIcon', nil, '/Library/Desktop Pictures/Ripples Moss.jpg' ));
lb2 = JSCPlugView( tab, Rect( 10, 20, 360, 360 ), JavaObject( 'javax.swing.JLabel' ));
lb2.setIcon( JavaObject( 'javax.swing.ImageIcon', nil, '/Library/Desktop Pictures/Nature/Faux Fur.jpg' ));
JSCPlugView( tab, Rect( 10, 20, 360, 360 ), JavaObject( 'javax.swing.JColorChooser' ));
// ... and containers
tab.setTitleAt( 0, "Image 1" );
tab.setTitleAt( 1, "Image 2" );
tab.setTitleAt( 2, "Color" );
// we can mix with regular gadget types
JSCButton( win, Rect( 0, 0, 80, 24 ))
.states_([[ "Aha" ]]);
rout = Routine({
var value;
inf.do({ arg i;
value = i % 101;
progBar.setValue( value );
if( value == 100, 2, 0.1 ).wait;
});
});
win.onClose = {
rout.stop;
// should we dispose the images? not sure at the moment
};
win.front;
rout.play;
)